package com.digua.atools.tools;

import java.math.BigDecimal;

/**
 * 格式化工具
 */
public class FormatUtil {
    /**
     * 格式化金额(四舍五入)
     *
     * @param amt   要格式化的金额
     * @param digit 小数倍数
     * @return
     */
    public static String formatAmt(double amt, int digit) {
        return formatAmt(new BigDecimal(amt), digit, "");
    }

    /**
     * 格式化金额(四舍五入)
     *
     * @param amt   要格式化的金额
     * @param digit 小数倍数
     * @param unit  单位
     * @return
     */
    public static String formatAmt(double amt, int digit, String unit) {
        return formatAmt(new BigDecimal(amt), digit, unit);
    }

    /**
     * 格式化金额(四舍五入)
     *
     * @param amt   要格式化的金额
     * @param digit 小数倍数
     * @return
     */
    public static String formatAmt(String amt, int digit) {
        return formatAmt(new BigDecimal(amt), digit, "");
    }

    /**
     * 格式化金额(四舍五入)
     *
     * @param amt   要格式化的金额
     * @param digit 小数倍数
     * @param unit  单位
     * @return
     */
    public static String formatAmt(String amt, int digit, String unit) {
        return formatAmt(new BigDecimal(amt), digit, unit);
    }

    /**
     * 格式化金额(四舍五入)
     *
     * @param amt   要格式化的金额
     * @param digit 小数倍数
     * @return
     */
    public static String formatAmt(BigDecimal amt, int digit) {
        return formatAmt(amt, digit, "");
    }

    /**
     * 格式化金额(四舍五入)
     *
     * @param amt   要格式化的金额
     * @param digit 小数倍数
     * @param unit  单位
     * @return
     */
    public static String formatAmt(BigDecimal amt, int digit, String unit) {
        return amt.setScale(digit, BigDecimal.ROUND_HALF_UP).toString() + (com.digua.atools.tools.StrUtil.isBlank(unit) ? "" : unit);
    }
}
